package net.wxxr.http.util;

import net.wxxr.dataparse.model.DataParseCode;
import net.wxxr.dataparse.model.DataParseError;
import net.wxxr.dataparse.model.HttpCode;

/**
 * 错误码工具类
 */
public class ErrorCodeUtil {

	public static DataParseCode fromHttp2DataCode(HttpCode code) {
		switch (code) {
		case STATUS_OK :
			return DataParseCode.STATUS_OK;
		case ERROR_NET_ACCESS:
			return DataParseCode.ERROR_NET_ACCESS;
		case ERROR_NO_CONNECT:
			return DataParseCode.ERROR_NO_CONNECT;
		case ERROR_NO_REGISTER:
			return DataParseCode.ERROR_NO_REGISTER;
		case COOKIE_OUT:
			return DataParseCode.COOKIE_OUT;
		case FOUCE_LOGOUT:
			return DataParseCode.FOUCE_LOGOUT;
		case ERROR_CONNECTION_TIMEOUT:
			return DataParseCode.ERROR_CONNECTION_TIMEOUT;
		case ERROR_SOKET_TIMEOUT:
			return DataParseCode.ERROR_SOKE_TIMEOUT;
		default:
				return DataParseCode.USER_CANCELLED;
		}
	}
	
	public static DataParseError getErrorByCode(DataParseCode code) {
		DataParseError error = new DataParseError();
		switch(code) {
		case DATA_PARSE_FAIL: 
			error.setErrorCode(code.DATA_PARSE_FAIL);
			error.setParseCode("601");
			error.setErrMsg("数据解析失败");
			break;
		case DATA_READ_FAIL:
			error.setErrorCode(code.DATA_READ_FAIL);
			error.setParseCode("602");
			error.setErrMsg("数据读取失败");
			break;
		case ERROR_NET_ACCESS:  //网络连接出错,请稍后再试
			error.setErrorCode(code.ERROR_NET_ACCESS);
			error.setParseCode("603");
			error.setErrMsg("网络不给力，请检查网络");
			break;
		case ERROR_NO_CONNECT: //网络错误，请启用数据网络
			error.setErrorCode(code.ERROR_NO_CONNECT);
			error.setParseCode("604");
			error.setErrMsg("网络不给力，请检查网络");
			break;
		case ERROR_NO_REGISTER:
			error.setErrorCode(code.ERROR_NO_REGISTER);
			error.setParseCode("605");
			error.setErrMsg("用户验证失败，请重新登录");
			break;
		case PARAM_ILLEGAL:
			error.setErrorCode(code.PARAM_ILLEGAL);
			error.setParseCode("606");
			error.setErrMsg("参数不合法");
			break;
		case STATUS_OK:
			//不可能出现此种情况
			break;
		case THREAD_POOL_FULL:
			error.setErrorCode(code.THREAD_POOL_FULL);
			error.setParseCode("607");
			error.setErrMsg("系统繁忙,请稍后再试");
			break;
		case COOKIE_OUT:
			error.setErrorCode(code.COOKIE_OUT);
			error.setParseCode("599");
			error.setErrMsg("获得登录Cookie失败！");
			break;
		case FOUCE_LOGOUT:
			error.setErrorCode(code.FOUCE_LOGOUT);
			error.setParseCode("-4");
			error.setErrMsg("登录失败！");
			break;
		case USER_CANCELLED:
			//不可能出现此种情况
			break;
		case ERROR_CONNECTION_TIMEOUT:  //网络连接超时
			error.setErrorCode(code.ERROR_CONNECTION_TIMEOUT);
			error.setParseCode("10");
			error.setErrMsg("网络不给力，请检查网络");
			break;
		case ERROR_SOKE_TIMEOUT: //请求数据超时！
			error.setErrorCode(code.ERROR_SOKE_TIMEOUT);
			error.setParseCode("11");
			error.setErrMsg("网络不给力，请检查网络");
		break;
		}
		return error;
	}
	
}
